package file;

import java.io.File;

public class ListDirDGDemo {
    public static void main(String[] args) {
        //指定要递归的目录
        File file = new File(".");
        //调用diGuiFolder方法,递归遍历上面指定的目录
        diGuiFolder(file);
    }
    //递归目录的方法,接收一个File对象
    public static void diGuiFolder(File file){
        /*
         * boolean isFile() 判断当前file对象是否是文件,如果是,返回true
         */
        //1.判断当前File是否是一个文件(防止第一次传入的是文件)
        if (file.isFile()){
            //1.1如果是文件,不继续执行
            System.out.println("这是文件,不支持递归!");
            return;
        }else{
            //1.2如果不是文件,执行下面内容
            //2.获取当前目录下所有的子项(文件和目录)
            File[] fs = file.listFiles();
            //3.遍历当前目录下的所有子目录以及子文件
            //fs.fori
            for (int i = 0; i < fs.length; i++) {
                //4.判断当前遍历的fs[i]是文件还是目录
                if (fs[i].isFile()){
                    //4.1如果遍历的是文件,直接输出文件的路径+名称
                    System.out.println("文件:"+fs[i]);
                }else{
                    //4.2如果遍历的不是文件,输出当前目录的路径+名称
                    System.out.println("目录:"+fs[i]);
                    //5.以当前目录为根,获取该目录的所有子项
                    diGuiFolder(fs[i]);
                }
            }
        }
    }
}
